home *** CD-ROM | disk | FTP | other *** search
- public bufpnt, buff, chrcnt, init, ofilsz, lnout
- public gofil, outbuf, ptchr, gtchr, gtnfil, getfil, filbuf
- public encode, decode, nulref, nulr, decbuf, errpack, rptq
- public origr, rptct, rptval, clrfln, cxmsg, biterr, intmsg
- public rtpos, erpos, rppos, stpos, nppos, rprpos, nrtpos, sppos
- public kbpos, perpos, frpos, prtasz, prtscr, prtfn, fmtdsp
- public diskio, locfil, strlen, strcat, strcpy, fparse, pktsize
- public shosta, begtim, endtim, fsta ; statistics procedures
-
- include ccsdef.h
-
- getdate equ 2ah ; DOS get current date
- rptmin equ 3 ; At least 3 of same char in a row
- ; equates for screen positioning
- ;scrser equ 0009H ; place for server state display line
- ;scrfln equ 0116H ; Place for file name
- ;scrkb equ 0216H ; Place for percent transferred
- ;scrper equ 0316H ; Place for Kbytes transferred
- ;scrst equ 0416H ; Place for status
- ;scrnp equ 0616H ; Place for number of packets
- ;scrsz equ 0716h ; packet size
- ;scrnrt equ 0816H ; Place for number of retries
- ;screrr equ 0916H ; Place for error msgs.
- ;scrhi equ 0a16H ; Err when 8th bit is on
- ;scrfr equ 0a16H ; Rename file
- ;scrint equ 0a16H ; Acknowledge interrupt
- ;scrsp equ 0D00H ; Place for send packet
- ;scrrp equ 0F00H ; Place for receive packet
- ;scrrpr equ 0b00H ; Prompt when Kermit ends (does cr/lf)
-
- datas segment public 'datas'
- extrn data:byte, flags:byte, trans:byte, pack:byte, hierr:byte
- extrn filtst:byte, tloghnd:word, dosnum:byte
- extrn isccdos:byte ; Jun 1990
-
- scrser dw 0209H ; place for server state display line
- scrfln dw 0316H ; Place for file name
- scrkb dw 0416H ; Place for percent transferred
- scrper dw 0516H ; Place for Kbytes transferred
- scrst dw 0616H ; Place for status
- scrnp dw 0816H ; Place for number of packets
- scrsz dw 0916h ; packet size
- scrnrt dw 0a16H ; Place for number of retries
- screrr dw 0b16H ; Place for error msgs.
- scrhi dw 0c16H ; Err when 8th bit is on
- scrfr dw 0c16H ; Rename file
- scrint dw 0c16H ; Acknowledge interrupt
- scrsp dw 0D00H ; Place for send packet
- scrrp dw 0F00H ; Place for receive packet
- scrrpr dw 1700H ; Prompt when Kermit ends (does cr/lf)
-
- outlin db 15 dup (' ')
- verdef
- db cr,lf,lf
- db cr,lf,' File name:'
- db cr,lf,' Kbytes transfered:'
- db cr,lf
- db cr,lf
- db cr,lf
- db cr,lf,' Number of packets:'
- db cr,lf,' Packet length:'
- db cr,lf,' Number of retries:'
- db cr,lf,' Last error:'
- db cr,lf,' Last message:'
- db cr,lf,'$'
-
- cscrser dw 0009H ; place for server state display line
- cscrfln dw 0116H ; Place for file name
- cscrkb dw 0216H ; Place for percent transferred
- cscrper dw 0316H ; Place for Kbytes transferred
- cscrst dw 0416H ; Place for status
- cscrnp dw 0616H ; Place for number of packets
- cscrsz dw 0716h ; packet size
- cscrnrt dw 0816H ; Place for number of retries
- cscrerr dw 0916H ; Place for error msgs.
- cscrhi dw 0a16H ; Err when 8th bit is on
- cscrfr dw 0a16H ; Rename file
- cscrint dw 0a16H ; Acknowledge interrupt
- cscrsp dw 0D00H ; Place for send packet
- cscrrp dw 0F00H ; Place for receive packet
- cscrrpr dw 0b00H ; Prompt when Kermit ends (does cr/lf)
-
- coutlin db cr,lf,' ╬─ ╝■ ├√ :'
- db cr,lf,' ╥╤┤½╦═╡─╫╓╜┌╩²(Kb):'
- db cr,lf
- db cr,lf
- db cr,lf
- db cr,lf,' ╥╤┤½╦═╡─░ⁿ╩²:'
- db cr,lf,' ░ⁿ│ñ:'
- db cr,lf,' ╓╪╖ó┤╬╩²:'
- db cr,lf,' ╫ε╜ⁿ╥╗┤╬┤φ╬≤:'
- db cr,lf,' ╫ε╜ⁿ╥╗┤╬┤½╦═─┌╚▌:'
- db '$'
- ermes4 db '?Unable to make unique name$'
- cermes4 db '?▓╗─▄╜¿┴ó▓╗═¼├√╫╓$'
- ermes9 db '?Printer not ready$'
- cermes9 db '? ┤≥╙í╗·├╗╙╨╫╝▒╕║├$'
- erms10 db '?Unable to store all data$'
- cerms10 db '?▓╗─▄┤µ┤ó╦∙╙╨╩²╛▌$'
- erms11 db '?Disk full$'
- cerms11 db '?┤┼┼╠╥╤┬·$'
- erms12 db '?Unable to create file $'
- cerms12 db '? ▓╗─▄╜¿┴ó╨┬╬─╝■ $'
- erms13 db '?Error writing file$'
- cerms13 db '? ╨┤╬─╝■┤φ╬≤$'
- infms1 db 'Server mode: type Control-C to exit',cr,lf,'$'
- cinfms1 db ' ╖■ ╬± ╞≈ ╖╜ ╩╜ : ┤≥╚δ Ctrl-C ═╦│÷',cr,lf,'$'
- infms5 db 'Renaming file to $'
- cinfms5 db '╬─╝■├√╕─╬¬ $'
- infms7 db 'File interrupt$'
- cinfms7 db '╬─╝■╓╨╢╧',cr,lf,'$'
- infms8 db 'File group interrupt',cr,lf,'$'
- cinfms8 db '╬─╝■╫Θ╓╨╢╧$'
- infms9 db 'User ',5eh,' interrupt',cr,lf,'$'
- cinfms9 db '╙├╗º ',5eh,' ╓╨╢╧$'
- hibit db 'File contains 8-bit data',cr,lf,'$'
- chibit db '╬─╝■░ⁿ║¼╫ε╕▀╬╗╩²╛▌$'
- asmsg db ' as $'
- casmsg db ' ╫≈╬¬ $'
- crlf db cr,lf,'$'
- printer db 'PRN',0
- ; DOS special chars allowed in filenames
- spchar2 db '$', 26h, 23h, 40h, 21h, 25h, 27H, '(', ')', '-', 7bh, 7dh
- db 5fh, 5eh, 7eh, 60h
- spc2len equ $-spchar2
- rptval db 0 ; Repeated character
- rptct db 1 ; Number of times it's repeated
- rptq db drpt ; Repeat prefix
- origr db drpt ; Original repeat prefix
- chrcnt dw 0 ; Number of chars in the file buffer
- outpnt dw 0 ; Position in packet
- bufpnt dw 0 ; Position in file buffer
- ofilsz dw 0 ; Double word original file size (in bytes.)
- dw 0
- tfilsz dw 0 ; Bytes transferred
- dw 0
- oldper dw 0 ; old percentage
- oldkbt dw 0 ; old KB transferred
- wrpmsg db 0 ; non-zero if we wrote percent message
- fmtdsp db 0 ; non-zero if formatted display in use
- ; Statistics data storage area
- fsta statinfo <> ; for last operation values
- ssta statinfo <> ; for session values
- sflag dw 0 ; flag for send (1) or receive (0)
- ; 80h = begtim started
-
- lastmsg db cr,lf,cr,lf,' Totals for the last transfer ($'
- clastmsg db cr,lf,cr,lf,'╫ε╜ⁿ╥╗┤╬┤½╦═╡─░ⁿ╡─╫▄╩² ($'
- sessmsg db cr,lf,cr,lf,' Totals since Kermit was started ($'
- csessmsg db cr,lf,cr,lf,'╞⌠╢» Kermit ║≤┤½╦═░ⁿ╡─╫▄╩² ($'
- pinmsg db ' sec)'
- db cr,lf,' Serial port characters received $'
- cpinmsg db ' ├δ)'
- db cr,lf,' ┤«╨╨┐┌╥╤╜╙╩╒╡─╫╓╖√╩² $'
- poutmsg db cr,lf,' Serial port characters sent $'
- cpoutmsg db cr,lf,' ┤«╨╨┐┌╥╤╖ó╦═╡─╫╓╖√╩² $'
- finmsg db cr,lf,' File characters received $'
- cfinmsg db cr,lf,' ╥╤╜╙╩╒╡─╬─╝■╫╓╖√╩² $'
- foutmsg db cr,lf,' File characters sent $'
- cfoutmsg db cr,lf,' ╥╤╖ó╦═╡─╬─╝■╫╓╖√╩² $'
- pkimsg db cr,lf,' Packets received $'
- cpkimsg db cr,lf,' ╥╤╜╙╩╒╡─╩²╛▌░ⁿ╩² $'
- pkomsg db cr,lf,' Packets sent $'
- cpkomsg db cr,lf,' ╥╤╖ó╦═╡─╩²╛▌░ⁿ╩² $'
- nakimsg db cr,lf,' NAKs received $'
- cnakimsg db cr,lf,' ╥╤╜╙╩╒╡─ NAK ░ⁿ╩² $'
- nakomsg db cr,lf,' NAKs sent $'
- cnakomsg db cr,lf,' ╥╤╖ó╦═╡─ NAK ░ⁿ╩² $'
- baudmsg db cr,lf,' Effective baud rate $'
- cbaudmsg db cr,lf,' ╙╨╨º▓¿╠╪┬╩ $'
- sndmsg db 'Sent ',0
- rcvmsg db 'Recv ',0
- date db '00:00:00 00 Jan 1980',0
- datelen equ $-date-1
- atmsg db cr,lf,' at '
- atlen equ $-atmsg
- fasmsg db ' as '
- faslen equ $-fasmsg
- cfasmsg db '╫≈╬¬'
- cfaslen equ $-cfasmsg ; not used, Jun 1990
-
- fsucmsg db ', completed, bytes: ',0
- cfsucmsg db ', ╜ß╩° , ╫╓╜┌╩² : ',0
- fbadmsg db ', failed, bytes: ',0
- cfbadmsg db ', ╩º░▄ , ╫╓╜┌╩² : ',0
- fintmsg db ', interrupted, bytes: ',0
- cfintmsg db ', ╓╨╢╧, ╫╓╜┌╩²: ',0
- months db 'JAN','FEB','MAR','APR','MAY','JUN','JUL','AUG','SEP'
- DB 'OCT','NOV','DEC'
-
- ;cmonth db '╥╗╘┬','╢■╘┬','╚²╘┬','╦─╘┬','╬σ╘┬','┴∙╘┬','╞▀╘┬','░╦╘┬','╛┼╘┬'
- ; DB '╩«╘┬','╩«╥╗╘┬','╩«╢■╘┬'
-
-
- tens dd 1,10,100,1000,10000,100000,1000000,10000000,100000000
- dd 1000000000
- tenslen equ ($-tens) / 4 ; number of double words in array tens
- ; end statistics data area
- onek dw 1024
- onehun dw 100
- sixty dw 60
- ten dw 10
- denom dw 0
- permsg db cr,' Percent transferred:$'
- cpermsg db cr,' ┤½╦═░┘╖╓▒╚:$'
- cxzhlp db '^X cancels file, ^Z cancels batch'
- db ', ^E quits protocol'
- db ', ^C quits'
- db ', Return retries'
- db '$'
- ccxzhlp db ' ^X ╚í╧√╬─╝■, ^Z ╚í╧√┼·╬─╝■'
- db ', ^E ═╦│÷╣µ│╠'
- db ', ^C ═ú╓╣═¿╨┼'
- db ', <╗╪│╡> ╓╪╖ó '
- db '$'
- erword db cr,lf,'Error $'
- cerword db cr,lf,' │÷┤φ $'
- rtword db cr,lf,'Retry $'
- crtword db cr,lf,'╓╪╖ó $'
- cxzser db cr,lf,'Type Control X to cancel file, Control Z to cancel batch,'
- db cr,lf,' Control E to quit protocol, Control C to quit abruptly,'
- db cr,lf,' or Return to retry',cr,lf,'$'
- ccxzser db cr,lf,' ╝ⁿ╚δ Ctrl-X ╚í╧√╬─╝■ , Ctrl-Z ╚í╧√┼·╬─╝■ , '
- db cr,lf,' Ctrl-E ═╦│÷╣µ│╠ , Ctrl-C ┴ó╝┤═ú╓╣═¿╨┼ , '
- db cr,lf,' ╗≥ <╗╪│╡> ╓╪╖ó ',cr,lf,'$'
- templp db 65 dup (?) ; temp for local path part
- templf db 14 dup (?) ; temp for local filename part
- temprp db 65 dup (?) ; temp for remote path part
- temprf db 14 dup (?) ; temp for remote filename part
- locfil db 65 dup (?) ; local filename for receive and get
- rdbuf db 65 dup (?) ; temp work buffer
- diskio filest <> ; ditto, for ordinary file transfers
-
- buff db buffsz dup (?) ; Use as our Disk Transfer Area
- filbuf equ this byte ; make filbuf and decbuf the same address
- decbuf db maxpack+10 dup (?) ; For decoding incoming data (+guard)
- unum dw ? ; unique filename generation number
- havdot db ? ; dot-found status in verify
- prepksz dw 0 ; previous packet size
- toscreen db 'Screen',0 ; for transaction logging
- ctoscreen db ' ╞┴─╗ ',0
- datas ends
-
-
-
-